package org.msfj.admin.org.service;

import org.msfj.admin.model.Dept;
import org.msfj.admin.vo.DeptVo;
import org.msfj.admin.model.Dept;
import org.msfj.admin.vo.DeptVo;
import org.msfj.admin.model.Dept;
import org.msfj.admin.vo.DeptVo;
import org.msfj.common.base.BaseService;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Description: 系统部门信息Service接口
 * @Author: like
 * @Email: like@deyatong.com
 * @Date: 2017-08-10 17:30:20
 * @Version: 1.0
 * @Created in idea by autoCode
 */
public interface DeptService extends BaseService<Dept> {

    /**
     * 根据条件分页查询系统部门信息列表
     *
     * @param deptVo
     * @param page 当前第几页
     * @param rows 每页多少条记录
     * @return PageInfo<Dept>
     */
    PageInfo<DeptVo> getByDept(DeptVo deptVo, int page, int rows);

    /**
     * 根据条件查询所有系统部门信息对象列表
     *
     * @param deptVo
     * @return List<Dept>
     */
    List<DeptVo> getAllDept(DeptVo deptVo);

    /**
    * 根据条件查询系统部门信息的tree对象
    *
    * @return
    */
    List<DeptVo> getDeptTree();

    /**
     * 设置vo的其他属性属性
     *
     * @param dept
     * @return DeptVo
     */
    DeptVo setOtherProperties(Dept dept);

//    /**
//     * 删除部门:1 查询要删除的部门及子部门  2 根据所有的部门查询用户信息并删除  3 根据用户id删除关联的角色表信息
//     * @param dept
//     * @return
//     */
//    DeptVo delDeptSetIdCount(Dept dept);

    /**
     * 设置vo的其他属性属性
     *
     * @param depts
     * @return List<DeptVo>
     */
    List<DeptVo> setOtherProperties(List<Dept> depts);
}
